home *** CD-ROM | disk | FTP | other *** search
Text File | 1988-07-02 | 1.1 KB | 49 lines | [TEXT/TRUE] |
- ! Simultaneous Equation Solver
- ! Dave Kelly
- ! ©1988 MacTutor
-
- LIBRARY "Fnmlib"
- DECLARE DEF Factrl
-
- DEF Get_Equation_Count !Read the number of equations
- WHEN ERROR IN
- LET Count=0
- DO
- READ value
- LET Count=Count+1
- LOOP
- USE
- RESTORE
- END WHEN
- LET n=0
- DO
- LET n=n+1
- LOOP UNTIL Factrl(n)>Count
- LET Count=n-1
- LET Get_Equation_Count=Count
- END DEF
-
- ! Start Main Program
- LET number_of_equations=Get_Equation_Count
- DIM a(2,2),b(2,2),c(2,1),x(2)
- ! Set up all the equations
- MAT READ a(number_of_equations,number_of_equations)
- MAT READ c(number_of_equations,1)
- MAT REDIM x(number_of_equations)
- CALL sim_solve(a,b,c,x,number_of_equations)
- MAT PRINT x ! Print the solutions
- DATA 1,-4,4,-1,6,-3,1,0,-1 ! equation coefficients
- DATA 7,0,7 ! equation data
- END
-
- SUB sim_solve(a(,),b(,),c(,),x(),number_of_equations)
- IF det(a)=0 THEN EXIT SUB
- FOR j=1 to number_of_equations
- MAT b=a
- FOR i= 1 to number_of_equations
- LET b(i,j)=c(i,1)
- NEXT i
- LET x(j)=det(b)/det(a)
- NEXT j
- END SUB
-